home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
csdudes.exe
/
CSDUDES.HPP
< prev
next >
Wrap
Text File
|
1992-06-25
|
9KB
|
316 lines
// Personnell Demo database
// (C) Copyright 1992 Campbell Soup Company by Andrew Frantz
// CSDUDES.HPP
// CIS --- 70712,3547
// =====================================================================
#include <alloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
#include <pxengine.h>
#include <strstrea.h>
#include <new.h>
#include "pdxtbl.hpp"
// extern "C"
// {
// #include <nit.h>
// #include <niterror.h>
// char *full_name(char *object_name);
// }
// char *userFullName();
#define DATAPATH "F:\\data\\person"
#define PDOXNETPATH "F:\\data\\person"
// #define DATAPATH "H:\\users\\es378n\\data\\person"
// #define PDOXNETPATH "H:\\users\\es378n\\data\\person"
// ====================================================================
#define Uses_TEventQueue
#define Uses_MsgBox
#define Uses_TEvent
#define Uses_TProgram
#define Uses_TApplication
#define Uses_TKeys
#define Uses_TRect
#define Uses_TMenuBar
#define Uses_TListBox
#define Uses_TSubMenu
#define Uses_TMenuItem
#define Uses_TStatusLine
#define Uses_TStatusItem
#define Uses_TStatusDef
#define Uses_TStringCollection
#define Uses_TDeskTop
#define Uses_TView
#define Uses_TWindow
// #define Uses_TFrame
#define Uses_TScroller
#define Uses_TScrollBar
#define Uses_TDialog
#define Uses_TButton
#define Uses_TSItem
// #define Uses_TCheckBoxes
#define Uses_TRadioButtons
#define Uses_TLabel
#define Uses_TInputLine
#define Uses_TCollection
// #define Uses_TEditor
// #define Uses_TMemo
#include <tv.h>
// =====================================================================
// Define the unique application messages
const int cmPersonAddDialog = 100;
const int cmPersonEditDialog = 101;
const int cmCostCtrAddDialog = 102;
const int cmCostCtrEditDialog = 103;
const int cmAboutCmd = 104; // About Dialog Box
const int cmBlank = 200;
const int cmAddRec = 202;
const int cmFirstRec = 203;
const int cmNextRec = 204;
const int cmClearRec = 205;
const int cmPrevRec = 206;
const int cmLastRec = 207;
const int cmChangeRec = 208;
const int cmDeleteRec = 209;
const int cmFindRec = 210;
const int cmDisplayTheList = 211;
const int cmsTestQuit = 212;
const int cmInterView = 213;
void testCore();
// =====================================================================
struct PersonXferBuffer
{
char LastName[16];
char FirstName[16];
char UserName[13];
char CostCtr[4];
char Address1[26];
char Address2[26];
char City[21];
char State[3];
char Zip[11];
char Ext[5];
char HomePhone[13];
ushort Group;
};
// =====================================================================
struct CostCtrXferBuffer
{
char CostCtr[4];
char CCDescription[26];
char ManagerUserName[13];
};
// =====================================================================
// ========================== PXPerson Class Begins ====================
class PXPerson : public pxtable
{
public:
PXPerson();
~PXPerson(void) { close(); }
PersonXferBuffer DisplayRecord();
void AddRecord(PersonXferBuffer *data);
void ChangeRecord(PersonXferBuffer *data);
int FindRecord(char *data);
int InitFields();
private:
CharFld LastName;
CharFld FirstName;
CharFld UserName;
CharFld Address1;
CharFld Address2;
CharFld City;
CharFld State;
CharFld Zip;
CharFld Ext;
CharFld HomePhone;
CharFld CostCtr;
ShortFld Group;
};
// =====================================================================
class TPersonDlg : public TDialog
{
public:
enum types {AddDlg, EditDlg};
TPersonDlg();
TPersonDlg(const char *title, int type);
// friend class TCCListDlg;
virtual void handleEvent( TEvent& event);
void cmListItemSelect(char *msg);
// void cmDisplayList();
void cmAdd();
void cmClear();
void cmFirst();
void cmNext();
void cmPrev();
void cmLast();
void cmChange();
void cmDelete();
void cmFind();
void cmTestQuit();
void checkDlg();
void setDlgStructs();
int integrityCheck();
private:
int DlgType;
// Need this to transfer data from Tvision objects to database
PersonXferBuffer personXferStruct;
PersonXferBuffer tempPerson; // used to see if screen has changed
};
// =====================================================================
// inlines declared in the header file Coplien idiom
inline void TPersonDlg::checkDlg()
{
int changed=0;
getData((void *) &personXferStruct);
if(strcmp(tempPerson.LastName, personXferStruct.LastName) != 0)
changed = 1;
if(strcmp(tempPerson.FirstName, personXferStruct.FirstName) != 0)
changed = 1;
if(strcmp(tempPerson.UserName, personXferStruct.UserName) != 0)
changed = 1;
if(strcmp(tempPerson.CostCtr, personXferStruct.CostCtr) != 0)
changed = 1;
if(strcmp(tempPerson.Address1, personXferStruct.Address1) != 0)
changed = 1;
if(strcmp(tempPerson.Address2, personXferStruct.Address2) != 0)
changed = 1;
if(strcmp(tempPerson.City, personXferStruct.City) != 0)
changed = 1;
if(strcmp(tempPerson.State, personXferStruct.State) != 0)
changed = 1;
if(strcmp(tempPerson.Zip, personXferStruct.Zip) != 0)
changed = 1;
if(strcmp(tempPerson.Ext, personXferStruct.Ext) != 0)
changed = 1;
if(strcmp(tempPerson.HomePhone, personXferStruct.HomePhone) != 0)
changed = 1;
if(tempPerson.Group != personXferStruct.Group)
changed = 1;
if(changed)
{
message(owner,evBroadcast,cmsTestQuit,this);
}
}
// =====================================================================
class TMyListBox : public TListBox
{
public:
TMyListBox(TRect& bounds,ushort num,TScrollBar *bar) :
TListBox(bounds,num,bar) {};
void handleEvent(TEvent&);
};
// =====================================================================
class TCCListDlg : public TDialog
{
public:
TCCListDlg(TRect&,char *);
void handleEvent(TEvent&);
TMyListBox *listBox;
};
// ===================================================================
class PXCostCtr : public pxtable
{
public:
PXCostCtr();
~PXCostCtr(void) { close(); }
CostCtrXferBuffer DisplayRecord();
void AddRecord(CostCtrXferBuffer *data);
void ChangeRecord(CostCtrXferBuffer *data);
int FindRecord(char *data);
int InitFields();
private:
// friend class TPersonDlg;
friend class TCCListDlg;
CharFld CostCtr;
CharFld CCDescription;
CharFld ManagerUserName;
};
// ====================================================================
class TCostCtrDlg : public TDialog
{
public:
enum types {AddDlg, EditDlg};
TCostCtrDlg();
TCostCtrDlg(const char *title, int type);
virtual void handleEvent( TEvent& event);
void cmListItemSelect();
// void cmDisplayList();
void cmAdd();
void cmClear();
void cmFirst();
void cmNext();
void cmPrev();
void cmLast();
void cmChange();
void cmDelete();
void cmFind();
void cmTestQuit();
void checkDlg();
void setDlgStructs();
private:
int DlgType;
// Need this to transfer data from Tvision objects to database
CostCtrXferBuffer costCtrXferStruct;
CostCtrXferBuffer tempCostCtr; // used to see if screen has changed
};
// =====================================================================
// inlines declared in the header file Coplien idiom
inline void TCostCtrDlg::checkDlg()
{
int changed=0;
getData((void *) &costCtrXferStruct);
if(strcmp(tempCostCtr.CostCtr, costCtrXferStruct.CostCtr) != 0)
changed = 1;
if(strcmp(tempCostCtr.CCDescription, costCtrXferStruct.CCDescription) != 0)
changed = 1;
if(strcmp(tempCostCtr.ManagerUserName, costCtrXferStruct.ManagerUserName) != 0)
changed = 1;
if(changed)
{
message(owner,evBroadcast,cmsTestQuit,this);
}
}
// ====================================================================
class TPersonnellApp : public TApplication
{
public:
TPersonnellApp();
static TStatusLine *initStatusLine( TRect r );
static TMenuBar *initMenuBar( TRect r );
virtual void handleEvent( TEvent& event);
void aboutDlgBox();
// private:
// friend cla